The present invention relates to computer networks and, more particularly, to a method of allocating network bandwidth during a multimedia session that includes both push and pull data sources.
A multimedia network session may include audio, video, image, and data elements. For example, in a distance learning production an instructor may deliver a video lecture accompanied by slides or whiteboard illustrations. The image of the instructor is delivered over the network by a video medium and the sound by an audio medium. The whiteboard illustrations and slides may be delivered to viewers as images. Other elements of the lecture, such as an outline or prepared notes, might be delivered as text. Typically, a server program streams or transmits the data representing the multimedia presentation elements to client programs running on the several computers or other devices which the students use to view the lecture. Each medium or program element has its own nature and characteristics and different protocols are used in transmitting each element of the session over the network. For example in a multimedia session such as the exemplary lecture, the server may control the flow and rate of data transmission or xe2x80x9cpushxe2x80x9d data representing certain elements of the session to the clients. On the other hand, some of the data may be xe2x80x9cpulledxe2x80x9d from the server with the client controlling the data rate. The data representing some of the elements of the lecture may be transferred at fixed rates while data representing other elements may be transferred at variable rates. The bandwidth available for the session is limited, usually by the client""s connection. When the bandwidth is limited, a method of allocating the available bandwidth to most effectively transport the dynamically varying data rates for the media is desired.
Statistical multiplexing has been investigated for use in bandwidth allocation between a plurality of video encoders. Uz et al., U.S. Pat. No. 5,854,658, describe a statistical multiplexing system for rate control for a plurality of video encoders. The rate control system is intended to maximize the perceived quality of the decoded video which is related to the coding rate. Allocation of coding rates between the several encoders is accomplished by minimization of a cost function that seeks to minimize either the total distortion or the maximum distortion of the video. An encoder reports its status to the central controller after encoding each video frame. The report includes upper and lower rate limits that will avoid an exception for the encoder""s video buffer verifier. The central controller computes the desired rate allocation without consideration of buffer constraints and clamps each encoder""s rate at a rate between the upper and lower rates reported by the encoder. As the demands of the system and the limits of the rate ranges for the various encoders change, the portion of the total bandwidth allocated to each encoder changes. Statistical multiplexing is useful for controlling a plurality of video encoders undertaking a common task in a manner common to all the encoders. However, statistical multiplexing does not provide a mechanism suitable for bandwidth allocation for a number of disparate elements from push and pull sources that are transferred using several different protocols.
What is desired, therefore, is a method of allocating the limited bandwidth of a network communication channel among several disparate media having differing characteristics, being communicated with several protocols, and having data transfer rates controlled by a combination of push and pull sources.
The present invention overcomes the aforementioned drawbacks of the prior art by providing a method of transferring data comprising the steps of transferring data for a first medium at a first rate and transferring data for a second medium at a second rate, the second rate determined by a function relating a distortion of the first medium and a latency in transferring the second medium data. The function relating the distortion of the first medium and the delay for the second medium is a cost function. A data transfer rate for the second medium that minimizes the cost function optimizes the conflicting goals of minimizing the distortion of the first medium which is often video provided by unreliable delivery and the delay of the second medium which can be text, data or an image provided with reliable delivery. The cost function can also include a value expressing a relative weighting of the delay of the second medium and the distortion in the first medium.